package ar.edu.utn.frsf.tpae.a2012.g01.model;

import java.util.Date;
import java.util.List;

public abstract class Cuenta {
	private int id;
	private long numero;
	private int cuentaClienteId;
	private Date fechaApertura;
	private double saldoActual;
	private List<Movimiento> movimientos;

	public Cuenta(int id, long numero, int cuentaClienteId, Date fechaApertura,
			double saldoActual) {
		super();
		this.id = id;
		this.numero = numero;
		this.cuentaClienteId = cuentaClienteId;
		this.fechaApertura = fechaApertura;
		this.saldoActual = saldoActual;
	}

	public int getId() {
		return id;
	}

	public void setId(int id) {
		this.id = id;
	}

	public long getNumero() {
		return numero;
	}

	public void setNumero(long numero) {
		this.numero = numero;
	}

	public int getCuentaClienteId() {
		return cuentaClienteId;
	}

	public void setCuentaClienteId(int cuentaClienteId) {
		this.cuentaClienteId = cuentaClienteId;
	}

	public Date getFechaApertura() {
		return fechaApertura;
	}

	public void setFechaApertura(Date fechaApertura) {
		this.fechaApertura = fechaApertura;
	}

	public double getSaldoActual() {
		return saldoActual;
	}

	public void setSaldoActual(double saldoActual) {
		this.saldoActual = saldoActual;
	}

	public List<Movimiento> getMovimientos() {
		return movimientos;
	}

	public void setMovimientos(List<Movimiento> movimientos) {
		this.movimientos = movimientos;
	}

	@Override
	public int hashCode() {
		final int prime = 31;
		int result = 1;
		result = prime * result + id;
		return result;
	}

	@Override
	public boolean equals(Object obj) {
		if (obj == null)
			return false;
		if (getClass() != obj.getClass())
			return false;
		Cuenta other = (Cuenta) obj;
		if (id != other.getId())
			return false;
		return true;
	}
}
